import java.util.*;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: GodK
 * Date: 2024-09-27
 * Time: 19:27
 */
public class Main {
    public static void main(String[] args){
        int[] dp = new int[V+1];
        int ret = 0;
        for(int i = 1;i <= n;i++){
            for(int j = V;vw[i-1][0] <= j;j--){
                dp[j] = Math.max(dp[j],dp[j - vw[i-1][0]] + vw[i-1][1]);
            }
        }
        return dp[V];
//        Scanner in = new Scanner(System.in);
//        int n = in.nextInt();
//        int k = in.nextInt();
//        int[] a = new int[n];
//        int[] b = new int[n];
//        for(int i = 0;i < n;i++)a[i] = in.nextInt();
//        for(int i = 0;i < n;i++)b[i] = in.nextInt();
//        //PriorityQueue<int[]> q = new PriorityQueue<>((i,j) -> (j[1] - j[0]) - (i[1] - i[0]));
//        PriorityQueue<int[]> q = new PriorityQueue<>((i,j) -> {
//            if(i[1] == j[1])return i[0] - j[0];
//            else return j[1] - i[1];
//        });
//        for(int i = 0;i < n;i++){
//            q.add(new int[]{a[i],b[i]});
//        }
//        long ret1 = 0;
//        long ret2 = 0;
//        for(int i = 0;i < k;i++){
//            int[] t = q.poll();
//            ret1 += t[0];
//            ret2 += t[1];
//        }
//        System.out.println(ret1 + " " + ret2);
    }
//    public static String compressString (String param) {
//        if(param == null)return param;
//        char[] ch = param.toCharArray();
//        StringBuilder ret = new StringBuilder();
//        char a = ch[0];
//        int count = 0;
//        for(char c : ch){
//            if(c != a){
//                ret.append(a);
//                if(count != 1)ret.append(count);
//                a = c;
//                count = 1;
//            }else count++;
//        }
//        ret.append(a);
//        ret.append(count);
//        return ret.toString();
//    }

//    public static void main(String[] args) {
//        System.out.println(compressString(""));
//    }
//    public static void main(String[] args) {
//        Scanner in = new Scanner(System.in);
//        int n = in.nextInt(), k = in.nextInt();
//        long[] a = new long[n + 1];
//        long[] b = new long[n + 1];
//        for (int i = 0; i < n; i++) a[i] = in.nextLong();
//        for (int i = 0; i < n; i++) b[i] = in.nextLong();
//        int left = 0, right = 0;
//        long hSum = 0, sSum = 0, hMax = 0, sMin = 0, begin = 0;
//        while (right < n) {
//            hSum += a[right];
//            sSum += b[right];
//            if (right - left + 1 > k) {
//                hSum -= a[left];
//                sSum -= b[left];
//                left++;
//            }
//            if (right - left + 1 == k) {
//                if (hSum > hMax) {
//                    begin = left + 1;
//                    hMax = hSum;
//                    sMin = sSum;
//                } else if (hSum == hMax && sSum < sMin) {
//                    begin = left + 1;
//                    sMin = sSum;
//                }
//            }
//            right++;
//        }
//        System.out.println(begin);
//    }
}
